package com.pair.micro.fee.modules.charge.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fhs.core.trans.vo.TransPojo;
import com.pair.micro.common.utils.DateUtils;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@Data
@Schema(description = "收费账单")
public class ChargeReceiveVO implements Serializable, TransPojo {
    private static final long serialVersionUID = 1L;

    @Schema(description = "id")
    private String id;

    @Schema(description = "收费设置id", required = true)
    private String projectId;

//    @Schema(description = "费用区间", required = true)
//    @NotNull(message = "费用区间不能为空")
//    private String period;



    @Schema(description = "开始时间")
    @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
    private Date startDate;

    @Schema(description = "结束时间")
    @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
    private Date endDate;

//    @Schema(description = "欠费开始时间")
//    @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
//    private Date debtStartDate;
//
//    @Schema(description = "欠费结束时间")
//    @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
//    private Date debtEndDate;
//
    @Schema(description = "应收金额")
    private BigDecimal receiveAmount;
//
//    @Schema(description = "应收欠款")
//    private BigDecimal revAmount;
//
//    @Schema(description = "实收金额")
//    private BigDecimal paidAmount;
//
//    @Schema(description = "数据状态，0、未交费  1、已缴费", required = true)
//    private Integer state;
//
//    @Schema(description = "数据状态，0, 在用 1失效", required = true)
//    private Integer status;
//
//    @Schema(description = "操作人")
//    private Integer operatorId;
//
//    @Schema(description = "创建时间")
//    @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
//    private Date createTime;

    @Schema(description = "收费开始区间")
    @JsonFormat(pattern = DateUtils.DATE_PATTERN)
    private Date chargeStartTime;

    @Schema(description = "收费结束区间")
    @JsonFormat(pattern = DateUtils.DATE_PATTERN)
    private Date chargeEndTime;
    @Schema(description = "小区id", required = true)
    @NotNull(message = "小区id不能为空")
    private Integer gardenId;

    @Schema(description = "楼栋id", required = true)
    private Integer houseId;

    @Schema(description = "单元id", required = true)
    private Integer unitId;

    @Schema(description = "房屋id", required = true)
    private Integer roomId;

    @NotBlank(message = "收费范围不能为空")
    @Schema(description = "收费范围")
    private String chargeRange;


    @Schema(description = "收费设置对象")
    private ChargeConfigVO configVO;
}
